1. Technical Field
The present invention relates in general to a system and method for optimizing system performance using a performance monitor. More particularly, the present invention relates to a system and method that monitors threads in a plurality of dissimilar processors and optimizes CPU time among the processors based on analyzing data gathered for the various threads.
2. Description of the Related Art
Computing systems that use a combination of heterogeneous processors are becoming increasingly popular. In these environments, one or more general purpose processors work in conjunction with one or more special purpose processors. Being different processor types, the general purpose processors use a different instruction set architecture (ISA) than the ISA used by the special purpose processors. Having different processing characteristics and ISAs lends each processor type to efficiently performing different types of tasks.
Because of the different characteristics of the processors, this heterogeneous environment is attractive to a variety of applications, such as multimedia, gaming, and numeric intensive applications. In this environment, a program can have multiple threads. Some of these threads can execute on the general purpose processors and other threads can execute on the special purpose processors. A challenge, however, is that resource availability is not often known until an application is running. A challenge, therefore, is predetermining the amount of CPU time that should be allocated to the various threads. This challenge is exacerbated in a heterogeneous processing environment where one type of CPU (based on a first ISA) may be constrained, while another type of CPU (based on a second ISA) may not be constrained.
What is needed, therefore, is a system and method that monitors thread performance in a heterogeneous processing environment. What is further needed is a system and method that dynamically alters the amount of CPU time that threads received based upon an analysis of the thread performance data.